var optionData = []; //选项值
$(function() {
	//字段类型下拉框
	sys.selectpicker({
    	id: 'fieldType',
    	url: rootPath + '/dict/listKeyMapEntites',
    	param: {keyType: "fieldType"},
    	valueField: 'keyValue',
    	textField: 'keyIntro',
    	defaultValue: $('#fieldType').attr('init-value')
    })
    
    $('#fieldType').on('changed.bs.select', function (e) {
	  	var value = $(this).selectpicker('val');
	  	if (value == "1") {
	  		$('.optionDiv').hide();
	  	} else {
	  		optionData = [];
	  		initOptionValueTable(optionData);
	  		$('.optionDiv').show();
	  	}
	});
	//点击提交事件
	$("#btn_save").click(function() {
		$("#customerCustomFieldForm").submit();
		return false;
	});
	//初始化选项值列表 
	if ($('#choiceOption').val()) { 
		optionData = eval($('#choiceOption').val());
		initOptionValueTable(optionData);
		$('.optionDiv').show();
	} else {
		initOptionValueTable([]);
	}
	//校验并提交自定义属性 
	checkAndSubmitCustomFiledInfo();
	//添加选项值按钮点击事件
	$('#btnAdd_optionValue').on('click', function(){
		var optionValue = $('#optionValue').val();
		if (!optionValue) return; 
		$('#optionValue').val("");
		var option = {"key": optionValue, "value": optionValue};
		if (sys.Array.getIndex(optionData, option) > -1) return;
		optionData.push(option); 
		initOptionValueTable(optionData);
	})
	
	//点击返回事件
	$("#btn_back").click(function() {
		var index = parent.layer.getFrameIndex(window.name);
   		parent.$('#layer_opt_status').val('0'); 
   		parent.layer.close(index);
	});
	
});

/**
 * 初始化选项值列表 
 */
function initOptionValueTable(data){
	// 定义列
	var columns = [
		{
			field : 'no',
			title : '序号',
			width : 20,
			align : 'left',
			formatter : function(value, row, index) {
				return index + 1;
			}
		},
		{
			field : 'value',
			title : '字段值 ',
			width : 100,
			align : 'center'
		},
		{
			field: '#',
			title: '操作',
			width : 20,
			align : 'center',
			formatter: function(value, row, index) {
				return '<a href="#" onclick="editRow(\''+row.value+'\')" style="color:#31B0D5">编辑<a> &nbsp;'
					+ ' <a href="#" onclick="removeRow(\''+row.value+'\')" style="color:#31B0D5">删除<a>';
			}
		}];
			
	
	sys.initTable('optionValueTable', { 
		columns : columns,
		pagination: false,
		data: data,
		striped : true,
		clickToSelect : true
	});
}

function editRow(value) {
	var arrIndex = sys.Array.getIndex(optionData, {"key" : value, "value": value});  
	layer.prompt({
		  value: value,
		  title: '请输入值'
		}, 
		function(val, index){
			if (val) {
				optionData[arrIndex]["key"] = val;
				optionData[arrIndex]["value"] = val;
				initOptionValueTable(optionData);
			} 
			layer.close(index);
		}
	);
}

function removeRow(value) { 
	sys.Array.remove(optionData, {"key" : value, "value": value});
	initOptionValueTable(optionData);
}

/**
 * 校验并提交自定义属性 
 */
function checkAndSubmitCustomFiledInfo(){
	$("#customerCustomFieldForm").validate({
		rules : {
			fieldName : {
				required : true,
				minlength : 1,
				maxlength : 30
			},
			fieldType : {
				required : true 
			},
		},
		messages : {
			fieldName : {
				required : '请填写字段名称 ',
				minlength : '字段名称 至少1个字符',
				maxlength : '字段名称 至少30个字符'
			},
			fieldType : {
				required : '请填写字段类型  1 文本  2 单选 3 多选' 
			},
		},
		errorPlacement : function(error, element) { // 错误信息位置设置方法
			var tagName = $(element).is("select");
			if (!tagName) {
				error.insertAfter(element);
			} else {
				error.insertAfter(element.parent());
			}
		},
		submitHandler : function(form) {
			$(form).ajaxSubmit({
				type : 'post',
				data : {choiceOption: JSON.stringify(optionData)},
				timeout : 5000,
				success : function(json) {
					var index = parent.layer.getFrameIndex(window.name);
					if (json.code == '1') {
						parent.$('#layer_opt_status').val('1');
						parent.layer.close(index);
					} else {
						parent.$('#layer_opt_status').val('0');
						showErr('新增失败！');
					}
				}
			}); 
		}
	});
}

